

let string = 'abcdefgabc'
let str1 = 'bcd'
let str2 = 'bc d'




//方法1：indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
// 如果要检索的字符串值没有出现，则该方法返回 -1。
console.log('方法1：',string.indexOf(str1)) // 1
console.log('方法1：',string.indexOf(str2)) // -1





//方法2：match() 方法可在字符串内检索指定的值，或找到一个或多个正则表达式的匹配。
console.log('方法2：',string.match(RegExp(str1))) // [ 'bcd', index: 1, input: 'abcdefgabc', groups: undefined ]
console.log('方法2：',string.match(RegExp(str2))) // null




//方法3：search() 方法用于检索字符串中指定的子字符串，
// 或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串，则返回 -1。
console.log('方法3：',string.search(str1)) // 1
console.log('方法3：',string.search(str2)) // -1



//方法4：test() 方法用于检索字符串中指定的值。返回 true 或 false。
console.log('方法4：',RegExp(str1).test(string)) // true
console.log('方法4：',RegExp(str2).test(string)) // false



//方法5:exec() 方法用于检索字符串中的正则表达式的匹配。
// 返回一个数组，其中存放匹配的结果。如果未找到匹配，则返回值为 null。
console.log('方法5：',RegExp(str1).exec(string)) //  [ 'bcd', index: 1, input: 'abcdefgabc', groups: undefined ]
console.log('方法5：',RegExp(str2).exec(string)) // null



//方法6：自定义暴力比较
function isInString(str1,str2){
    let len = str1.length
    for(let i=0;i<str2.length-len;i++){
        if(str2.slice(i,i+len) === str1){
            return true
        }

    }
    return false
}

console.log('方法6：',isInString(str1, string));
console.log('方法6：',isInString(str2, string));



